#region
/* Adoor.NET - Object/Relational mapping framework leveraging ADO.NET`s powerful disconnected mode.
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *  
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *  
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */ 
#endregion

using System;
using System.Data.SqlTypes;

namespace Adoor.Object.Entity
{
	/// <summary>
	/// An interface supported by property mappers for the writing of property values.
	/// </summary>
	public interface IPropertyWriter: IPropertyReader
	{
		void SetObject(IEntity sourceEntity, object value);
		void SetString(IEntity sourceEntity, String value);
		void SetSqlString(IEntity sourceEntity, SqlString value);
		void SetBoolean(IEntity sourceEntity, Boolean value);
		void SetSqlBoolean(IEntity sourceEntity, SqlBoolean value);
		void SetInt32(IEntity sourceEntity, Int32 value);
		void SetSqlInt32(IEntity sourceEntity, SqlInt32 value);
		void SetInt16(IEntity sourceEntity, Int16 value);
		void SetSqlInt16(IEntity sourceEntity, SqlInt16 value);
		void SetDouble(IEntity sourceEntity, Double value);
		void SetSqlDouble(IEntity sourceEntity, SqlDouble value);
		void SetSingle(IEntity sourceEntity, Single value);
		void SetSqlSingle(IEntity sourceEntity, SqlSingle value);
		void SetDateTime(IEntity sourceEntity, DateTime value);
		void SetSqlDateTime(IEntity sourceEntity, SqlDateTime value);
		void SetDecimal(IEntity sourceEntity, Decimal value);
		void SetSqlDecimal(IEntity sourceEntity, SqlDecimal value);
		void SetByteArray(IEntity sourceEntity, Byte[] value);

		void SetSqlGuid(IEntity sourceEntity, SqlGuid value);
		void SetGuid(IEntity sourceEntity, Guid value);
	}
}